home *** CD-ROM | disk | FTP | other *** search
- unit thrs;
-
- interface
-
- uses
- SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
- Forms, Dialogs, StdCtrls;
-
- type
- TForm1 = class(TForm)
- Edit1: TEdit;
- RunBtn: TButton;
- StopBtn: TButton;
- procedure RunBtnClick(Sender: TObject);
- procedure StopBtnClick(Sender: TObject);
- procedure FormActivate(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
-
- var
- Form1: TForm1;
- Stop : boolean;
-
- thHandle : integer;
- thID : integer;
-
- implementation
-
- {$R *.DFM}
-
- function Go ( p : Pointer ) : integer;
- { The Thread function. This runs until the Boolean Stop = true
- then it exits. The Thread is terminated on exit }
- var
- i : Longint;
- begin
- Stop := false;
- for i := 0 to 2000 do
- begin
- Form1.Edit1.Text := IntToStr(i);
- // Form1.Edit1.Update; { this is no longer needed }
- if Stop then exit;
- end;
- end;
-
- procedure TForm1.RunBtnClick(Sender: TObject);
- { Begin a Thread to run the Function named Go }
- begin
- try
- thHandle := BeginThread(nil,0,Go,nil,0,thID);
- finally
- if thHandle <> 0 then // if 0 there was an error
- CloseHandle(thHandle); // close handle after Thread is dead!
- end;
- end;
-
- procedure TForm1.StopBtnClick(Sender: TObject);
- begin
- Stop := true;
- end;
-
- procedure TForm1.FormActivate(Sender: TObject);
- begin
- Stop := false;
- end;
-
- end.
-